package com.crazyhat.crazyhat.service;

import java.util.List;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.crazyhat.crazyhat.attribute.ClubPositionEnum;
import com.crazyhat.crazyhat.dto.ClubMemberDTO;
import com.crazyhat.crazyhat.entity.Participation;

/**
 * <p>
 * 参与的社团 服务类
 * </p>
 *
 * @author crazyhat
 * @since 2024-07-05
 */
public interface IParticipationService extends IService<Participation> {

    public Page<Participation> getParticipation(int pageNum, int pageSize);

    /**
     * 查询用户是否已经加入社团
     * @param clubId
     * @param studentId
     * @return 已加入：true，未加入“False
     */
    boolean hasParticipation(Integer clubId,Integer studentId);

    /**
     * 获取用户的社团职位
     * @param clubId
     * @return
     */
    public ClubPositionEnum getclubPositionOfUser(Integer clubId);


    /**
     * 查询用户是否为社区的管理员，即是否为社团的一把手或二把手
     * @param clubId
     * @return
     */
    public boolean isCommunityManager(Integer clubId);

    List<Participation> selectList(QueryWrapper<Participation> queryWrapper);


    /**
     * 删除成员
     * @param participation
     */
    void deleteById(Participation participation);

    /**
     * 获取社团成员列表
     * @param clubId
     * @return
     */
    public List<ClubMemberDTO> getClubMemberList(Integer clubId);

    /**
     * 获取社团管理员列表
     * @param club
     * @return
     */
    public List<Participation> getClubManagerList(Integer clubId);
}
